// JavaScript Document
function selChange(){//显示哪一个div的内容,遮罩层显示参数
	switch(middle.options[middle.selectedIndex].value)//有改动
	{
		  case "bacontent":
		      showMyDiv(middle.options[middle.selectedIndex].value);
			  break;
		  case "ercontent":
		      showMyDiv(middle.options[middle.selectedIndex].value);
			  break;
		  case "wscontent":
		      showMyDiv(middle.options[middle.selectedIndex].value);
			  break;
		  case "swbcontent":
		      showMyDiv(middle.options[middle.selectedIndex].value);
			  break;
		  case "bbvcontent":
		      showMyDiv(middle.options[middle.selectedIndex].value);
			  break;
			  default:
			  break;
		}
	}
	
function Commit(){
	document.getElementById("divparam").style.display='';//有改动
	Close();
	setParam();//显示网络图形的参数
	//showDemo();//测试函数，显示网络图形
}
	//一下三个函数也有改动
function baCommit(num1,num2){
	if(checkNum(num1) && checkEdge(num2))
	{
		//1.将数据传给后台2.关闭当前div层，显示主div层3.将div中text的value清空
		/*调用后台函数，此函数两部分参数1和2
		1.网络模型 middle.options[middle.selectedIndex].value
		2.网络模型对应的参数num1，num2*/
		//在后台没有给定函数前，自己写了一个测试函数showDemo()
		
	    Commit();//2.
		//3.
		document.getElementById(num1).value="";
		document.getElementById(num2).value="";
        return true;
	}
	else
		return false;
}
function erCommit(num1,num2){
	if(checkNum(num1) && checkPos(num2))
	{
		//1.将数据传给后台2.关闭当前div层，显示主div层3.将div中text的value清空
	    Commit();//2.
		//3.
		document.getElementById(num1).value="";
		document.getElementById(num2).value="";
		return true;
	}
	else
		return false;
	}
function wsCommit(num1,num2,num3){
	if(checkNum(num1) && checkPos(num2) && checkNext(num3))/*checkNext(num3)*/
	{
	    //1.将数据传给后台2.关闭当前div层，显示主div层3.将div中text的value清空
	    Commit();//2.
		//3.
		document.getElementById(num1).value="";
		document.getElementById(num2).value="";
		document.getElementById(num3).value="";
		return true;
	}
	else
		return false;
}	
	//显示特征值和相应特征曲线的iframe
function setLabel(){//有改动
	var element=document.getElementById("label_text");
		/*后台返回值应该是个函数，此函数中包括这个值，
		但是也应该包括绘制特征曲线所需要的数据集，
		疑问：是一个函数可以返回所有数据，还是有两个函数完成，
		一个返回平均均值，另一个返回绘制图形所需要的数据集*/
	 switch(param.options[param.selectedIndex].value)
	 {
		 /*element.innerHTML后面还应该有函数返回这些值
		 此函数参数为(网络模型,特征值)，返回值为计算出的特征*/
		case "avgDegree":
			  
			  element.innerHTML="平均度";
 			  
	          document.getElementById("avgDegree").style.display='';
	          document.getElementById("avgDistance").style.display='none';
			  
	          document.getElementById("modularity").style.display='none';
			  
	          document.getElementById("distribution").style.display='none';
			  
	          document.getElementById("cluster").style.display='none';
			  
	          document.getElementById("netDiameter").style.display='none';
	          curve.location.href ="user/showAvgDegree.action";
			break;
		case "netDiameter":
			  element.innerHTML="网络直径";
			  
	          document.getElementById("avgDegree").style.display='none';	  
	          document.getElementById("avgDistance").style.display='none';	  
	          document.getElementById("modularity").style.display='none';
	          document.getElementById("distribution").style.display='none';
	          document.getElementById("cluster").style.display='none';  
	          document.getElementById("netDiameter").style.display='';
	          curve.location.href ="user/showCruel.action";
			break;
		case "modularity":
			  element.innerHTML="模块度";
			  
	          document.getElementById("avgDegree").style.display='none';
			  
	          document.getElementById("avgDistance").style.display='none';
			  
	          document.getElementById("modularity").style.display='';
			  
	          document.getElementById("distribution").style.display='none';
			  
	          document.getElementById("cluster").style.display='none';
			  
	          document.getElementById("netDiameter").style.display='none';
			break;
		case "avgDistance":
			  element.innerHTML="平均距离";
			  
	          document.getElementById("avgDegree").style.display='none';
			  
	          document.getElementById("avgDistance").style.display='';
			  
	          document.getElementById("modularity").style.display='none';
			  
	          document.getElementById("distribution").style.display='none';
			  
	          document.getElementById("cluster").style.display='none';
			  
	          document.getElementById("netDiameter").style.display='none';
			break;
		case "cluster":
			  element.innerHTML="平均聚类系数";
			  
	          document.getElementById("avgDegree").style.display='none';
			  
	          document.getElementById("avgDistance").style.display='none';
			  
	          document.getElementById("modularity").style.display='none';
			  
	          document.getElementById("distribution").style.display='none';
			  
	          document.getElementById("cluster").style.display='';
			  
	          document.getElementById("netDiameter").style.display='none';
			break;
		case "distribution":
			  element.innerHTML="分布度";
			  
	          document.getElementById("avgDegree").style.display='none';
			  
	          document.getElementById("avgDistance").style.display='none';
			  
	          document.getElementById("modularity").style.display='none';
			  
	          document.getElementById("distribution").style.display='';
			  
	          document.getElementById("cluster").style.display='none';
			  
	          document.getElementById("netDiameter").style.display='none';
			  break;
		default:
			break;
	 }
}
	//显示对应网络图的参数和相应的网络模型的iframe
function setParam(){
	document.getElementById("label_num").innerHTML="";
    document.getElementById("label_edge").innerHTML="";
    document.getElementById("label_pos").innerHTML="";
	
	//每次重新选择网络模型时，把上一次的特征值显示清除掉
	document.getElementById("label_text").innerHTML="";
    document.getElementById("avgDegree").style.display='none';
    document.getElementById("avgDistance").style.display='none';
    document.getElementById("modularity").style.display='none';
    document.getElementById("distribution").style.display='none';
    document.getElementById("cluster").style.display='none';
    document.getElementById("netDiameter").style.display='none';
	
	
	switch(middle.options[middle.selectedIndex].value)
	{
		  case "bacontent":
		      document.getElementById("label_num").innerHTML="网络规模："+document.getElementById("tx_banum").value;
			  document.getElementById("label_edge").innerHTML="新节点连边数："+document.getElementById("tx_banew").value;
			  document.getElementById("label_model").innerHTML="当前网络：BA网络";
			  document.getElementById("ba_link").style.display='';
			  document.getElementById("bbv_link").style.display='none';
			  document.getElementById("ws_link").style.display='none';
			  document.getElementById("swb_link").style.display='none';
			  document.getElementById("er_link").style.display='none';
			  break;
		  case "ercontent":
		      document.getElementById("label_num").innerHTML="网络规模："+document.getElementById("tx_ernum").value;
			  document.getElementById("label_edge").innerHTML="连边概率："+document.getElementById("tx_erpos").value;
			  document.getElementById("label_model").innerHTML="当前网络：ER网络";
			  document.getElementById("er_link").style.display='';
			  document.getElementById("bbv_link").style.display='none';
			  document.getElementById("ws_link").style.display='none';
			  document.getElementById("swb_link").style.display='none';
			  document.getElementById("ba_link").style.display='none';
			  break;
		  case "wscontent":
		      document.getElementById("label_num").innerHTML="网络规模："+document.getElementById("tx_wsnum").value;
			  document.getElementById("label_edge").innerHTML="重连概率："+document.getElementById("tx_wsrepos").value;
			  document.getElementById("label_pos").innerHTML="最近邻连接点数："+document.getElementById("tx_wsnext").value;
			  document.getElementById("label_model").innerHTML="当前网络：WS网络";
			  document.getElementById("er_link").style.display='none';
			  document.getElementById("bbv_link").style.display='none';
			  document.getElementById("ws_link").style.display='';
			  document.getElementById("swb_link").style.display='none';
			  document.getElementById("ba_link").style.display='none';
			  break;
		  case "swbcontent":
		      document.getElementById("label_num").innerHTML="网络规模："+document.getElementById("tx_swbnum").value;
			  document.getElementById("label_edge").innerHTML="连边数："+document.getElementById("tx_swbedge").value;
			  document.getElementById("label_model").innerHTML="当前网络：社团网络";
			  document.getElementById("er_link").style.display='none';
			  document.getElementById("bbv_link").style.display='none';
			  document.getElementById("ws_link").style.display='none';
			  document.getElementById("swb_link").style.display='';
			  document.getElementById("ba_link").style.display='none';
			  break;
		  case "bbvcontent":
		      document.getElementById("label_num").innerHTML="网络规模："+document.getElementById("tx_bbvnum").value;
			  document.getElementById("label_edge").innerHTML="新节点连边数："+document.getElementById("tx_bbvnew").value;
			  document.getElementById("label_model").innerHTML="当前网络：BBV网络";
			  document.getElementById("er_link").style.display='none';
			  document.getElementById("bbv_link").style.display='';
			  document.getElementById("ws_link").style.display='none';
			  document.getElementById("swb_link").style.display='none';
			  document.getElementById("ba_link").style.display='none';
			  break;
			  default:
			  document.getElementById("label_num").innerHTML="";
			  document.getElementById("label_edge").innerHTML="";
			  document.getElementById("label_pos").innerHTML="";
			  break;
		}
	}
	//判断输入节点数是否正确，正整数且不能为空
function checkNum(num){
	var re = /^[1-9]+[0-9]*]*$/;   //^[0-9]+.?[0-9]*$判断字符串是否为数字     //判断正整数 /^[1-9]+[0-9]*]*$/   
     if (!re.test(document.getElementById(num).value))
    {
        //alert("输入节点数应为正整数！");
		errorNum();
		document.getElementById(num).value="";
        document.getElementById(num).focus();
		return false;
     }
	 else
	  {
		 document.getElementById("banum_error").innerHTML="";
		 document.getElementById("ernum_error").innerHTML="";
		 document.getElementById("wsnum_error").innerHTML="";
		 document.getElementById("swbnum_error").innerHTML="";
		 document.getElementById("bbvnum_error").innerHTML="";
		 return true;
	 }
	}
	function checkEdge(edge){
	var re = /^[1-9]+[0-9]*]*$/;   //^[0-9]+.?[0-9]*$判断字符串是否为数字     //判断正整数 /^[1-9]+[0-9]*]*$/   
     if (!re.test(document.getElementById(edge).value))
    {
		errorEdge();
		document.getElementById(edge).value="";
        document.getElementById(edge).focus();
		return false;
     }
	 else
	 {
		 document.getElementById("baedge_error").innerHTML="";
		 document.getElementById("swbedge_error").innerHTML="";
		 document.getElementById("bbvedge_error").innerHTML="";
		 return true;
	 }
	}
function checkPos(pos){/**/
	 var posible = /^(0(\.\d+)?|1)$/ ;
	 if (!posible.test(document.getElementById(pos).value))
    {
        errorPos();
		document.getElementById(pos).value="";
        document.getElementById(pos).focus();
		return false;
     }
	 else
	 {
		 document.getElementById("erpos_error").innerHTML="";
		 document.getElementById("wspos_error").innerHTML="";
	     return true;
	 }
	}	
	//ws的最近邻连接点判断
function checkNext(num){
	var re = /^[1-9]+[0-9]*]*$/;   //^[0-9]+.?[0-9]*$判断字符串是否为数字     //判断正整数 /^[1-9]+[0-9]*]*$/   
     if (!re.test(document.getElementById(num).value))
    {
        //alert("输入节点数应为正整数！");
		document.getElementById("wsnext_error").innerHTML="最近邻连接点数不能空，且必须为正整数";
		document.getElementById(num).value="";
        document.getElementById(num).focus();
		return false;
     }
	 else
	  {
		 document.getElementById("wsnext_error").innerHTML="";
		 return true;
	 }
	}
	//输入节点出错设置提示
function errorNum(){
	switch(middle.options[middle.selectedIndex].value)
	{
		  case "bacontent":
		     document.getElementById("banum_error").innerHTML="节点数不能为空，且必须为正整数";
			  break;
		  case "ercontent":
		      document.getElementById("ernum_error").innerHTML="节点数不能为空，且必须为正整数";
			  break;
		  case "wscontent":
		     document.getElementById("wsnum_error").innerHTML="节点数不能为空，且必须为正整数";
			  break;
		  case "swbcontent":
		     document.getElementById("swbnum_error").innerHTML="节点数不能为空，且必须为正整数";
			  break;
		  case "bbvcontent":
		     document.getElementById("bbvnum_error").innerHTML="节点数不能为空，且必须为正整数";
			  break;
			  default:
			  break;
		 }
	}
	//输入边出错设置提示
function errorEdge(){
	switch(middle.options[middle.selectedIndex].value)
	{
		  case "bacontent":
		     document.getElementById("baedge_error").innerHTML="输入连边数不能为空，且必须为正整数";
			  break;
		  case "swbcontent":
		     document.getElementById("swbedge_error").innerHTML="输入连边数不能为空，且必须为正整数";
			  break;
		  case "bbvcontent":
		     document.getElementById("bbvedge_error").innerHTML="输入连边数不能为空，且必须为正整数";
			  break;
			  default:
			  break;
		 }
	}
	//输入连边率出凑设置
function errorPos(){//er ws    ba bbv swb
	switch(middle.options[middle.selectedIndex].value)
	{
		  case "ercontent":
		     document.getElementById("erpos_error").innerHTML="输入连边率不能为空，且必须在0-1之间";
			  break;
		  case "wscontent":
		     document.getElementById("wspos_error").innerHTML="输入连边率不能为空，且必须在0-1之间";
			  break;
			  default:
			  break;
		 }
	}